In the prior art, a storage server performs deduplication and compression processing on all received data. when an external device sends data to a logical address (assumed to be an address 0) of the storage server, the storage server first partitions the data to obtain a data block, calculates a fingerprint of the data block using a corresponding hash algorithm after the partitioning, and transmits the fingerprint of the data block to a fingerprint library for querying (the fingerprint library stores a fingerprint corresponding to a data block that has been stored in storage space), to determine whether the data block is a duplicate data block. When the data block is a duplicate data block, a deduplication operation is performed, that is, the duplicate data block is deleted, a reference quantity of a data block (an address of the data block that is the same as the duplicate data block is an address 1 in the storage space, and the address 1 is a physical address), which is the same as the duplicate data block, in the storage space is increased by 1, and the address 0 is directed to the address 1. When the data block is a unique data block, the data block is stored into the storage space. Certainly, before the data block is stored, a compression operation may be performed on the data block, and a physical address is allocated correspondingly to store the data block.
However, after the duplicate data block in the address 0 is deleted, the external device may still continuously send a write request to the address, to overwrite data in the address 0. Therefore, the foregoing deduplication operation performed on the data in the address 0 makes no sense, thereby wasting computing resources of the storage server.